<?php
/**
 * Implementa��o do padr�o DAO para a classe Setor.
 * Essas fun��es n�o devem ser chamadas diretamente, sendo seu uso feito via a classe Setor.
*/

//if( !function_exists('__autoload') )
//{
  //  function __autoload($class_name) {
   // require_once $class_name . '.php';
    //}
//}

require_once('DataAccess.php');
require_once('Setor.php');

class SetorDAO
{

      private $database;

      public function __construct( )
      {
               $this->database = DataAccess::getConnection();
      }
      
      public function CadastrarSetor( $setor )
      {
      		$consulta = $this->database->Fetch("BEGIN");
		
			if ( $consulta )
    		{   
      			$campus = $setor->campus;
            	$consulta = $this->database->Fetch("INSERT INTO t_setor(T_CAMPUS_ID, NOME, RESPONSAVEL)
                                 					VALUES (
                                 					'$campus->id', 
                                 					'$setor->nome', 
                                 					'$setor->responsavel') ");
    			if( $consulta )
            	{
            		$consulta = $this->database->Fetch("COMMIT");
            		return TRUE;
           		}
           		else
           		{
        			$consulta = $this->database->Fetch("ROLLBACK");
           			return FALSE;
           		}
    		}
    		else
    		{
    			$consulta = $this->database->Fetch("ROLLBACK");
            	return FALSE;
    		}

      }
      
      public function AlterarSetor( $setor )
      {
      		$consulta = $this->database->Fetch("BEGIN");
		
			if ( $consulta )
    		{   
      			$consulta = $this->database->fetch("UPDATE t_setor 
               										SET 
               										nome = '$setor->nome',
               										responsavel = '$setor->responsavel' 
               										WHERE id = '$setor->id' ");
    		    if( $consulta )
            	{
            		$consulta = $this->database->Fetch("COMMIT");
            		return TRUE;
           		}
           		else
           		{
        			$consulta = $this->database->Fetch("ROLLBACK");
           			return FALSE;
           		}
    		}
    		else
    		{
    			$consulta = $this->database->Fetch("ROLLBACK");
            	return FALSE;
    		}

      }

      public function RemoverSetor( $setorId )
      {
      		$consulta = $this->database->Fetch("BEGIN");
		
			if ( $consulta )
    		{       
      			$resultado = $this->database->Fetch(" DELETE FROM t_setor WHERE id = $setorId ");
               
    			if( $consulta )
            	{
            		$consulta = $this->database->Fetch("COMMIT");
            		return TRUE;
           		}
           		else
           		{
        			$consulta = $this->database->Fetch("ROLLBACK");
           			return FALSE;
           		}
    		}
    		else
    		{
    			$consulta = $this->database->Fetch("ROLLBACK");
            	return FALSE;
    		}
      }

      public function CarregarSetor( $setorId )
      {              
               $consulta = $this->database->Fetch(" SELECT * FROM t_setor WHERE id = $setorId ORDER BY nome");
 
               if( $consulta != FALSE && mysql_num_rows($consulta) > 0 )
               {
                   $rows = $this->database->getRow();
                   $objetos = Setor::ArrayParaObjetos( $rows );

                   return $objetos[0];
               }
               else
                   return FALSE;
      }
      
      public function CarregarSetores()
      {
               $consulta = $this->database->Fetch(" SELECT * FROM t_setor ORDER BY nome");

               if ( $consulta != FALSE && mysql_num_rows($consulta) > 0  )
               {
                  $rows = $this->database->getRow();
                  $objetos = Setor::ArrayParaObjetos( $rows );

                  return $objetos;  
               }
               else
                   return FALSE;
      }

      public function CarregarSetoresPorCampus( $campusId )
      {
               $consulta = $this->database->Fetch(" SELECT * FROM t_setor WHERE t_campus_id = $campusId ORDER BY nome");

               if ( $consulta != FALSE && mysql_num_rows($consulta) > 0 )
               {
                  $rows = $this->database->getRow();
				  $objetos = Setor::ArrayParaObjetos( $rows );

                  return $objetos;  
               }
               else
                   return FALSE;
      }
      
}
?>
